package pe.edu.upc.dsd.pedido.model.vo;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import pe.edu.upc.dsd.seguridad.model.vo.Usuario;


@Entity
@Table(name="ped_pedido")
public class Pedido implements Serializable, Comparable<Pedido>{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	@Column(name="id")
	private int id;
	@ManyToOne 
	@JoinColumn(name="cliente")
	private Cliente cliente;
	@ManyToOne 
	@JoinColumn(name="vendedor")
	private Usuario usuario;
	@ManyToOne 
	@JoinColumn(name="destino")
	private Destino destino;
	@Column(name="fecha_solicitud")
	private Date fecha_solicitud;
	@Column(name="fecha_entrega")
	private Date fecha_entrega;
	@Column(name="fecha_requerida")
	private Date fecha_requerida;
	@Column(name="fecha_anulado")
	private Date fecha_anulado;
	@Column(name="subtotal")
	private Double subtotal;
	@Column(name="igv")
	private Double igv;
	@Column(name="total")
	private Double total;
	@Column(name="forma_entrega")
	private String forma_entrega;
	@Column(name="estado")
	private Boolean estado;
	@Column(name="tipo_pago")
	private String tipo_pago;
	@Column(name="tipo_doc")
	private String tipo_doc;
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public Cliente getCliente() {
		return cliente;
	}
	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}
	public Usuario getUsuario() {
		return usuario;
	}
	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}
	
	
	
	public Date getFecha_solicitud() {
		return fecha_solicitud;
	}
	public void setFecha_solicitud(Date fecha_solicitud) {
		this.fecha_solicitud = fecha_solicitud;
	}
	public Date getFecha_entrega() {
		return fecha_entrega;
	}
	public void setFecha_entrega(Date fecha_entrega) {
		this.fecha_entrega = fecha_entrega;
	}
	public Date getFecha_requerida() {
		return fecha_requerida;
	}
	public void setFecha_requerida(Date fecha_requerida) {
		this.fecha_requerida = fecha_requerida;
	}
	public Date getFecha_anulado() {
		return fecha_anulado;
	}
	public void setFecha_anulado(Date fecha_anulado) {
		this.fecha_anulado = fecha_anulado;
	}
	public Double getSubtotal() {
		return subtotal;
	}
	public void setSubtotal(Double subtotal) {
		this.subtotal = subtotal;
	}
	public Double getIgv() {
		return igv;
	}
	public void setIgv(Double igv) {
		this.igv = igv;
	}
	public Double getTotal() {
		return total;
	}
	public void setTotal(Double total) {
		this.total = total;
	}
	public String getForma_entrega() {
		return forma_entrega;
	}
	public void setForma_entrega(String forma_entrega) {
		this.forma_entrega = forma_entrega;
	}
	public Boolean getEstado() {
		return estado;
	}
	public void setEstado(Boolean estado) {
		this.estado = estado;
	}
	public String getTipo_pago() {
		return tipo_pago;
	}
	public void setTipo_pago(String tipo_pago) {
		this.tipo_pago = tipo_pago;
	}
	public Destino getDestino() {
		return destino;
	}
	public void setDestino(Destino destino) {
		this.destino = destino;
	}
	@Override
	public int compareTo(Pedido pedido) {
		// TODO Auto-generated method stub
		return this.id - pedido.getId();
	}
	public String getTipo_doc() {
		return tipo_doc;
	}
	public void setTipo_doc(String tipo_doc) {
		this.tipo_doc = tipo_doc;
	}
	
	
	
	
	

}
